home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 1 / Gold Medal Software Volume 1 (Gold Medal) (1994).iso / prog / tpwprog5.arj / LINES.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1992-07-02  |  1.6 KB  |  80 lines

  1. { lines.pas -- Draw lines at random in a window }
  2.  
  3. program Lines;
  4.  
  5. uses WinTypes, WinProcs, WObjects;
  6.  
  7. const
  8.  
  9.   timer_ID = 1;
  10.  
  11. type
  12.  
  13.   LineApplication = object(TApplication)
  14.     procedure InitMainWindow; virtual;
  15.   end;
  16.  
  17.   PLineWindow = ^LineWindow;
  18.   LineWindow = object(TWindow)
  19.     procedure SetupWindow;
  20.       virtual;
  21.     procedure WMDestroy(var Msg: TMessage);
  22.       virtual wm_First + wm_Destroy;
  23.     procedure WMTimer(var Msg: TMessage);
  24.       virtual wm_First + wm_Timer;
  25.   end;
  26.  
  27. { LineApplication }
  28.  
  29. {- Initialize the application's window }
  30. procedure LineApplication.InitMainWindow;
  31. begin
  32.   MainWindow := New(PLineWindow, Init(nil, 'Random Lines'))
  33. end;
  34.  
  35. { LineWindow }
  36.  
  37. {- Initialize the window's actions }
  38. procedure LineWindow.SetupWindow;
  39. begin
  40.   TWindow.SetupWindow;
  41.   SetTimer(HWindow, timer_ID, 100, nil)
  42. end;
  43.  
  44. {- Intercept wm_Destroy message }
  45. procedure LineWindow.WMDestroy(var Msg: TMessage);
  46. begin
  47.   KillTimer(HWindow, timer_ID);
  48.   TWindow.WMDestroy(Msg)
  49. end;
  50.  
  51. {- Display random lines }
  52. procedure LineWindow.WMTimer(var Msg: TMessage);
  53. var
  54.   Dc: HDC;
  55.   R: TRect;
  56. begin
  57.   Dc := GetDC(HWindow);
  58.   GetClientRect(HWindow, R);
  59.   MoveTo(Dc, Random(R.Right), Random(R.Bottom));
  60.   LineTo(Dc, Random(R.Right), Random(R.Bottom));
  61.   ReleaseDC(HWindow, Dc)
  62. end;
  63.  
  64. var
  65.  
  66.   LineApp: LineApplication;
  67.  
  68. begin
  69.   LineApp.Init('LineApp');
  70.   LineApp.Run;
  71.   LineApp.Done
  72. end.
  73.  
  74.  
  75. {--------------------------------------------------------------
  76.   Copyright (c) 1991 by Tom Swan. All rights reserved.
  77.   Revision 1.00    Date: 2/20/1991
  78. ---------------------------------------------------------------}
  79.  
  80.